package com.service;

import com.dto.OrdersAddForm;
import com.dto.OrdersSearchForm;
import com.dto.ReportForm;
import com.entity.Orders;
import com.utils.PageObject;
import com.vo.OrdersVO;
import com.vo.ReportVO;

import java.util.List;

/**
 * <p>
 *  入库订单服务类
 * </p>
 *
 * @author aiou
 * @since 2025-06-10
 */
public interface OrdersService{

    //分页查询
    PageObject<OrdersVO> list(PageObject pageObject, OrdersSearchForm form);
    //批量删除
    boolean batchDelete(String orderNoArr);
    //批量审核
    boolean batchVerify(String orderNoArr);
    //批量作废
    boolean batchInvalid(String orderNoArr);
    //新增订单
    boolean save(OrdersAddForm ordersAddForm);
    //根据订单编号查询
    Orders selectByOrderNo(String orderNo);
    //修改订单信息
    boolean update(OrdersAddForm ordersAddForm);
    //订单详情：单个删除
    boolean delete(String orderNo);
    //订单详情：单个审核
    boolean verify(String orderNo);
    //订单详情：单个作废
    boolean invalid(String orderNo);
    //采购退货单：分页查询
    PageObject<OrdersVO> ordersReturnList(PageObject pageObject, OrdersSearchForm form);
    //采购退货单：新增退货单
    boolean ordersReturn(OrdersAddForm ordersAddForm);
    //销售订单：分页查询
    PageObject saleList(PageObject pageObject, OrdersSearchForm form);
    //销售出库单：新增销售单
    boolean saleSave(OrdersAddForm ordersAddForm);
    //销售退货单：分页查询
    Object saleReturnList(PageObject pageObject, OrdersSearchForm form);
    //销售退货单：新增退货单
    boolean saleReturn(OrdersAddForm ordersAddForm);
    //仓库明细：分页查询
    PageObject reportList(PageObject pageObject, ReportForm form);
    //仓库明细：Excel导出(查询Excel内容)
    List<ReportVO> reportList();
    //采购退货单：入库
    boolean inStore(String idArray, String employeeName);
}
